/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DA;

import BE.BEContrasenha;
import java.sql.*;
import java.util.ArrayList;
import javax.swing.JOptionPane;

/**
 *
 * @author hunter2409
 */
public class DAContrasenhas {
    
    public ArrayList<BEContrasenha> obtenerContrasenhas()
    {
        DAConexion bd = new DAConexion();
        Connection con = null;
        Statement s = null;
        ResultSet rs = null;

        ArrayList<BEContrasenha> contrasenhas = new ArrayList<BEContrasenha>();
        String query = "SELECT * FROM contrasenhaxusuario order by (fechacreacion)";
        try
        {
            con = bd.conectar();
            s = con.createStatement();
            rs = s.executeQuery(query);
            BEContrasenha contrasenha;
            while (rs.next())
            {
                contrasenha = new BEContrasenha();
                contrasenha.setIdContrasenha(rs.getInt("idcontrasenhaxusuario"));
                contrasenha.setIdUsuario(rs.getInt("idusuario"));
                contrasenha.setContrasenha(rs.getString("contrasenha"));
                contrasenha.setFechaCreacion(rs.getDate("fechacreacion"));
                contrasenha.setEstado(rs.getString("estado"));
                
                contrasenhas.add(contrasenha);
            }

        }
        catch (Exception e)
        {
            JOptionPane.showMessageDialog(null,"Error al obtener las Contraseñas:"+e.toString(),
                                          "Error",JOptionPane.ERROR_MESSAGE);
            bd.cierraConexion(con);
            return null;
        }

        bd.cierraConexion(con);
        return contrasenhas;
    }

    public String insertar(BEContrasenha objContrasenha) {
        
        DAConexion bd = new DAConexion();
        Connection con = null;
        Statement s = null;
        ResultSet rs = null;

        
        

        try
        {
            con = bd.conectar();
            
            String query = "INSERT INTO contrasenhaxusuario(idusuario, contrasenha, fechacreacion,estado) VALUES (?, ?, ?,?)";
            PreparedStatement p=con.prepareStatement(query);
            p.setInt(1, objContrasenha.getIdUsuario());
            p.setString(2, objContrasenha.getContrasenha());
            java.sql.Date auxDate= new Date(objContrasenha.getFechaCreacion().getTime());
            p.setDate(3,(auxDate));
            p.setString(4, objContrasenha.getEstado());
            
            p.execute();           
            

        }
        catch (Exception e)
        {
            bd.cierraConexion(con);
            return "0";
        }

        bd.cierraConexion(con);
        return "1";
    }

    public String actualizar(BEContrasenha objContrasenha) {
        cambiarEstadoContrasenhasAntiguas(objContrasenha.getIdUsuario());
        return insertar(objContrasenha);
    }
    
    private void cambiarEstadoContrasenhasAntiguas(int idUsuario)
    {
        DAConexion bd = new DAConexion();
        Connection con = null;
        Statement s = null;
        ResultSet rs = null;

        
        

        try
        {
            con = bd.conectar();
            
            String query = "UPDATE contrasenhaxusuario SET estado=? WHERE idusuario=?";
            PreparedStatement p=con.prepareStatement(query);
            p.setString(1, "INACTIVO");
            p.setInt(2, idUsuario);
            p.execute();           
            

        }
        catch (Exception e)
        {
            bd.cierraConexion(con);
            
        }

        bd.cierraConexion(con);
        
    }
        
    
}
